#include<stdio.h>
//int cmp(const void* e1, const void* e2)
//{
//	return *(int*)e1 - *(int*)e2;
//}
//
//void change(char* buf1, char* buf2, size_t m)
//{
//	int i = 0;
//	for (i = 0; i < m; i++)
//	{
//		char s = *buf1;
//		*buf1 = *buf2;
//		*buf2 = s;
//		buf2++;
//		buf1++;
//	}
//}
//void bubblesort(void* a,size_t sz, size_t  width, int(*cmp)(const void*, const void*))
//{
//	int i = 0;
//	for (i = 0; i < sz - 1; i++)
//	{
//		int j = 0;
//		for (j = 0; j < sz - i - 1; j++)
//		{
//			if (cmp((char*)a + j * width, (char*)a + (j + 1) * width) > 0)
//			{
//				change((char*)a + j * width, (char*)a + (j + 1) * width,width);
//			}
//		}
//	}
//}
//
//int main()
//{
//	int a[] = { 156,1,3,2,5,7,4,6,8,10,9,78,999,15 };
//	int sz = sizeof(a) / sizeof(a[0]);
//	bubblesort(a,sz, sizeof(a[0]), cmp);
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", a[i]);
//	}
//	return 0;
//}



//strlen
size_t my_strlen(const char* a)
{
	int sum = 0;
	while (*a)
	{
		sum++;
		a++;
	}
	return sum;
}

int main()
{
	char a[] = "123456789abc";
	int s = my_strlen(a);
	printf("%d", s);
	return 0;
}

////strcpy
//#include<string.h>
//#include<assert.h>
//void mystrcpy(char* s, const char* use)
//{
//	assert(s);
//	assert(use);
//	/*int i = 0;
//	int num = strlen(use);
//	for (i = 0; i <= num; i++)
//	{
//		*s = *use;
//		s++;
//		use++;
//	}*/
//	while (*s = *use)
//	{
//		s++;
//		use++;
//	}
//}
//int main()
//{
//
//	char a1[] = "abcdef";
//	char b1[] = "123";
//	char a[] = "abcdef";
//	strcpy(a1, b1);
//	printf("%s\n", a1);
//	char b[] = "123";
//	mystrcpy(a,b);
//	printf("%s", a);
//}

//strcmp
//#include<string.h>
//#include<assert.h>
//int mystrcmp(const char* a, const char* b)
//{
//	assert(a);
//	assert(b);
//
//	while (*a && *b)
//	{
//		return (int)*a - (int)*b;
//	}
//}
//int main()
//{
//	char a[] = "abcdef";
//	char b[] = "132d";
//	printf("%d\n", mystrcmp(a, b));
//	printf("%d\n", strcmp(a, b));
//
//}

//strcat
//#include<string.h>
//char * mystrcat( char* a, const char* b)
//{
//	while (*a)
//		a++;
//	int num = strlen(b);
//	int i = 0;
//	for (i = 0; i < num; i++)
//	{
//		*a = *b;
//		a++; b++;
//	}
//}
//int main()
//{
//	char a[12] = "abcccd";
//	char b[] = "123";
//	/*mystrcat(a, b);
//	printf("%s\n", a);*/
//	mystrcat(a, "789");
//	printf("%s\n", a);
//}

//
//#include<string.h>
//#include<assert.h>
//const char* mystrstr(const char* str1, const char* str2)
//{
//	assert(str1);
//	assert(str2);
//	while(*str1&&*str2)
//	{
//		if (*str1 == *str2)
//		{
//			char* a = str1;
//			while (*str1 && *str2)
//			{
//				if (*str1 != *str2)
//				{
//					return NULL;
//				}
//				str1++;
//				str2++;
//			}
//			return a;
//		}
//		else
//			str1++;
//	}
//	return NULL;
//}
//int main()
//{
//	char a[] = "that is a monster";
//	char b[] = "is";
//
//	mystrstr(a, b);
//
//	printf("%p\n", mystrstr(a, b));
//	printf("%p\n", strstr(a, b));
//
//}
